package user;

import java.io.*;

/**
 * @author Administrator
 * 操作实现类：实现接口
 */
public class UserDaoIO implements UserDao {
    @Override
    public void register(User user) {
        //传入的uesr对象写入文件
        BufferedWriter bw=null;
        try {
            bw=new BufferedWriter(new FileWriter("D:\\user.txt"));
            //将user对象中的各属性以“--”为分隔符作为一行文本写入文件
            bw.write(user.getId()+"--"+user.getPassword()+"--"+user.getAge());
            //加入分隔符
            bw.newLine();
            //刷新
            bw.flush();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("出现异常"+e.getMessage());
        }finally {
            if(bw!=null) {
                try {
                   bw.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
             }
        }
    }

    @Override
    public boolean login(String name, String password) {
        //1读取文件中的每一行数据
        //    创建字符缓冲流对象
        //    循环操作
        //       调用该对象的readline（）方法读取一行数据
        //2将相关的数据跟传入的name和password比较
        //    若相同 返回true
        //3最后返回false
        //
        BufferedReader br=null;

        try {
            br=new BufferedReader(new FileReader("D:\\user.txt"));
        String line=null;
        while ((line=br.readLine())!=null){
            String [] data=line.split("--");
            if (data[1].equals(name)&&data[2].equals(password)){
                return true;
            }
        }

        } catch (IOException e) {
            e.printStackTrace();
        }


        return false;
    }

    @Override
    public void queryAll() {
    BufferedReader br=null;
        try {
            br=new BufferedReader(new FileReader("d:\\user.txt"));
            String line=null;
            while ((line=br.readLine())!=null){
                System.out.println(line);
            }
        } catch (Exception e) {
            System.out.println(""+e.getMessage());

        }finally {
            if(br !=null){
                try{
                    br.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }

    }
}
